Processors within a microprocessor system may depend upon firmware to perform self tests and initiate operations subsequent to a resetting event. In a multiple processor system, even processors within the same general family of processors may differ from each other due to processor speed, stepping level, certain architectural revisions, and many other parameters. For this reason, firmware may include several modules that are each specific to one group of processors within a general family of processors.
Additionally, there may be reasons to perform field upgrades to such firmware modules. Flash memory or other field upgradeable memories may initially contain the initial firmware modules, and these modules may be overwritten with updated firmware modules at a later date. However, since the flash memory may be written to, it may possibly become corrupted. The very firmware that controls updating the firmware may itself become corrupted, preventing field recovery of the system. In this case the system may need to be returned to the manufacturer to have the flash memory physically replaced with a new flash memory module containing uncorrupted firmware.